Content consumption monitoring

ABSTRACT

Monitoring consumption of media content on a device may include receiving a media content playback event at a content consumption device, generating a content consumption notification message including subscriber information, content consumption device information, media content playback event identifier, and media content information, and transmitting the generated consumption notification message to a content consumption monitoring system.

RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional Application62/018,045 filed Jun. 27, 2014, which is incorporated herein byreference in its entirety.

TECHNICAL FIELD

The current disclosure relates to monitoring content consumption and inparticular to monitoring content consumption across multiple contentviewing devices.

BACKGROUND

Media content, such as television shows, movies and sporting events canbe viewed on a number of different content consumption devices. Thecontent consumption devices may include, for example, television sets,smart phones, tablets as well as browsers on computers. A user maysubscribe to one or more services that provide access to specificcontent across one or more of the content consumption devices. Forexample, a TV provider, such as a cable TV or satellite TV provider canprovide access to different TV channels or programming according to asubscription package. Depending upon the user's subscription, they maybe authorized to view the content on one or more different types of thecontent consumption devices over one or more different networks ordelivery (distribution) platforms.

With users able to view content across multiple devices, possibly usingdifferent delivery platforms or channels, such as wired networks,satellites, WiFi networks, and/or cellular networks, it would bebeneficial to track users' consumption of content or media assets on oneor more of the different devices and possibly across the differentaccess or network technologies.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments are described herein with references to the appendeddrawings, in which:

FIG. 1 depicts a content consumption system;

FIG. 2 depicts a system for monitoring consumption of content ondevices;

FIG. 3 depicts a process flow for monitoring consumption of content ondevices;

FIG. 4 depicts a further message flow for monitoring consumption ofcontent on devices;

FIG. 5 depicts a process flow for providing viewing bookmarks incontent;

FIG. 6 depicts a process for metering content consumption;

FIG. 7 depicts a process for controlling concurrent access to content;and

FIG. 8 depicts a further process for controlling concurrent access tocontent.

DETAILED DESCRIPTION

In accordance with the present disclosure, there is provided a methodfor monitoring consumption of media content comprising: receiving amedia content playback event at a content consumption device; generatinga content consumption notification message including subscriberinformation, content consumption device information, media contentplayback event identifier, and media content information; andtransmitting the generated consumption notification message to a contentconsumption monitoring system.

In accordance with the present disclosure, there is further provided adevice for consuming media content comprising: a processing unit forexecuting instructions; and a memory unit for storing instructions,which when executed by the processing unit configure the system toprovide: media consumption functionality for playback of media content;and media consumption monitoring functionality for: receiving a mediacontent playback event at a content consumption device; generating acontent consumption notification message including subscriberinformation, content consumption device information, media contentplayback event identifier, and media content information; andtransmitting the generated consumption notification message to a contentconsumption monitoring system.

In accordance with the present disclosure, there is further provided adevice for monitoring media content consumption comprising: a processingunit for executing instructions; and a memory unit for storinginstructions, which when executed by the processing unit configure thesystem to provide: notification reception functionality for receivingconsumption notification messages from a plurality of consumptiondevice, each of the received consumption notification messages includingsubscriber information, content consumption device information, mediacontent playback event identifier, and media content information; andwriting the received consumption notification messages to a file.

Media assets or content may be provided to a subscriber through variouscommunication channels (i.e. via various distribution or deliveryplatforms). For example, a user may be able to receive media content,such as television shows, movies, sporting events, music etc. from asatellite TV provider, a cable TV provider, an IPTV (Internet ProtocolTelevision) provider, an internet service provider (ISP), a cellularnetwork provider etc. Each content provider or distributor may have arespective distribution channel or delivery platform for providing mediacontent to a subscriber. In addition, a single content provider mayprovide content to subscribers over one or more distribution channels ordelivery platforms. For example, a company or service provider mayprovide satellite TV or cable television service, cellular networkservice, and internet service. A single user may have a subscription forreceiving content via each of the different distribution channels ordelivery platforms. However, each different content distribution channelor delivery platform may provide its content from respective contentstores, even if the content is the same. That is, multiple versions ofthe same content, such as a television show, may be stored in multipledifferent locations, and possibly under different names or identifiers,for distribution by the different distribution channels or deliveryplatforms.

Depending upon the distribution channel (delivery platform), andpossibly the communication network type, different content may beavailable to a subscriber. For example, a user may be a subscriber toIPTV services as well as mobile TV services. The IPTV service may allowthe subscriber to watch subscribed-to-TV channels while in their homeenvironment (e.g. using a conventional STB/TV set-up or on a tablet orother device via an in-home wired and/or wireless (WiFi) network). Themobile TV service may also provide content, which may or may not overlapwith the IPTV content, to the subscriber's mobile device for consumptionover the cellular network. Thus, a subscriber may be able to accesscontent on multiple devices, from multiple service offerings acrossmultiple distribution channels or platforms. As described further below,it is both desirable and possible to monitor content consumption of asubscriber on a mobile device as well as other devices. The contentconsumption monitoring may allow real-time, or near real-time, trackingof content being consumed by a user or subscriber. The contentconsumption monitoring may be used to enforce concurrency rulesassociated with the content, bookmarking of content viewing forsubsequent resumption, as well as billing and/or reporting.

FIG. 1 depicts an example of a content consumption system 100. Thesystem 100 depicts a subscriber content provider or distributor system102 that can provide media content to subscribers. The content provideror distributor system 102 may include a plurality of different contentdistribution or delivery channels, depicted as content delivery servers104 a, 104 b, 104 c (referred to collectively as content deliveryservers 104) and corresponding content data stores 106 a, 106 b, 106 c.Although each content delivery server is depicted as delivery contentfrom its own associated content data store, it is possible that one ormore of the content delivery servers 104 may deliver content from acommon content store. As an example, content delivery server 104 a andcontent store 106 a may provide a streaming IPTV service to subscribers,content delivery server 104 b and content store 106 b may provide mobileTV services to subscribers and content delivery server 104 c and contentstore 106 c may provide satellite TV services to subscribers. Each ofthe content delivery servers 104 a, 104 b and 104 c may distributecontent across a respective network, which may include the internet,cellular networks, satellite communication networks, telephone networks,cable networks, or other networks.

The media content may be distributed over respective networks 108 fromthe content delivery servers 104 to one or more content consumptiondevices of a user. The content consumption devices may include, forexample a set top box (STB) 110 that receives the media content from ahead-end system over a satellite network 112 comprising a satellite 112a and a receiving dish 112 b connected to the STB 110. The STB 110 maybe connected to a television 114. Additionally or alternatively, thefunctionality of the STB 110 may incorporated into the televisionitself. Media content may also be streamed to content consumptiondevices such as a tablet 118, smartphone or other portable device over awired and/or wireless (e.g. public or private WiFi) network provided byan access point 116. The media content may also be delivered to a smartphone 122, tablet or similar portable device, over a cellularcommunication network 120. Media content may also be provided to a cableTV or IPTV STB or IPTV-capable television 126 via an in-home network,supported by a wired and/or wireless (e.g. WiFi) access point or STB124. Although various content consumption devices are described herein,it will be appreciated that these devices are only intended as examplesand the media content may be provided to a content consumption device inother ways.

The subscriber content provider system 102 can provide media content viadifferent distribution systems or delivery platforms, which may beseparate from each other. In order to provide an improved userexperience in accessing content across multiple platforms ordistribution systems, a media monitoring server 128 may be provided thatmonitors the media content (or media assets) being consumed by a user ora subscriber. As described further herein, the media monitoring server128 can monitor the content being consumed on a device and can controlthe delivery of content to the user or subscriber as well as storedetails about the consumption of the content, such as when playbackstarted and stopped, the device the content was viewed on, a networkused to access the content etc.

The media monitoring server 128 may interact with a subscribermanagement system 130. The subscriber management system 130 may storesubscriber information in a subscriber data store 132. The subscriberinformation may include, for example, a unique subscriber identifier,account information for each of the content delivery systems(distribution platforms) 104 the subscriber has an account for, billinginformation, etc.

The media monitoring server 128 may also interact with a billingnotification system 134 that uses the content consumption information inorder to provide metering and billing based on the content consumed, aswell as possibly the connection type used in consuming the content.

As described above, media content can be provided to a subscriber overdifferent communication channels and different distribution systems ordelivery platforms. The media content may be sourced from a contentprovider. It will be appreciated that the content provider may be athird party distinct from the content distributor or they may be one andthe same. The content provider can provide the media content and anymetadata associated with the media content for storage in one or more ofthe content stores 106. Each of the content delivery systems of thecontent distributor may have specific requirements with regard to theencoding of the media asset and the formatting of its associated metadata. As depicted in FIG. 1, the subscriber content provider ordistributor system 102 may include a content ingestion component 136 forreceiving the media content and encoding the media asset and itsassociated metadata for distribution across the various differentdistribution systems or delivery platforms. The content ingestioncomponent 136 may also be adapted to format the received metadata inaccordance with the formatting requirements of the differentdistribution or delivery systems.

FIG. 2 depicts an example of a system 200 for monitoring consumption ofcontent on devices. The system 200 may be implemented in the environment100 described above. A single content delivery server 202 is depicted inFIG. 2 for simplicity. The content delivery server may distributecontent to various content consumption devices. The content consumptiondevices may include, for example a STB 204, an app running on portabledevice such as a smart phone or tablet 206 or a browser 208 running on acomputing device. Each of the content consumption devices 204, 206, 208include respective consumption monitoring functionality 214, 216, 218.In a non-limiting example, the consumption monitoring functionality maybe implemented by a client application resident on the contentconsumption device.

The consumption monitoring functionality 214, 216, 218 sendsnotification messages to the media monitoring server 210, and inparticular to consumption monitoring functionality 212 of the mediamonitoring server 210. The notifications may be periodic monitoring orreporting records sent at regular intervals as determined by amonitoring timer or based on the occurrence of playback events. Forexample, a mobile TV application on a mobile device, such as a smartphone, may generate monitoring records according to application usageand user activities during video content playback. The monitoringrecords may be periodically sent back to the media monitoring server210. The monitoring records may be sent to the media monitoring server210, for example, every X (e.g. 5) minutes. Additionally oralternatively, the monitoring records may be sent from the contentconsumption device as soon as monitoring records are generated. Forexample, the playback application may send a monitoring record whenplayback of some content is initiated, paused, stopped, etc.

The monitoring records are sent from the consumption device to theconsumption monitoring functionality 212 on the media monitoring server210, which may write the received monitoring records into flat files orother data structures for storage. The use of flat files may provide asimple storage means for temporarily storing monitoring records from aplurality of users or subscribers. A single flat file may be used totemporarily store the monitoring records received from a plurality ofconsumption devices. The flat file may be periodically closed and a newflat file created to store received monitoring records. The flat filesmay be processed and the individual monitoring records stored in anotherstructure such as a monitoring database.

The monitoring records received at the media monitoring server 210 maybe used for various purposes. For example, the information contained inthe monitoring records may be used for calculating precise videoconsumption by an amount of time the content was viewed, and to applymetering on video consumption per network type, customer type, andcontent type. Thus, the monitoring records allow actual time chargingwith the ability to track exact start and stop times, and provideprecise metering. The monitoring records also enable charging based on anetwork used to access the content such as over Wi-Fi as well as overcellular networks. The received monitoring records may also be processedand analyzed for business purposes and used to produce comprehensivereporting/analysis. Specifically, the processing of the monitoringrecords may allow for the detailed capturing of user behaviors foranalysis/reporting and to produce usage reports for revenue sharingpartners as required. The monitoring records issued by contentconsumption devices may also be used to establish sessions forconcurrency control enforcement. The monitoring records may also beleveraged to enable bookmarking functionalities to enhance users'experience.

The monitoring or reporting records may provide various information onthe content being viewed or consumed. The attributes captured by thereporting records may include, but are not limited to, for example:

-   -   Sequence: an integer that increases with each record        transmitted. May reset back to 0 after reaching a maximum number    -   subiD: unique ID to identify mobility customers    -   TVA: 16 digits TV account ID    -   DeviceID: unique ID for each device    -   DeviceModel: a string identifying a device model    -   Platform: a string identifying an operating system of the device    -   OSVersion: a string identifying a version of the operating        system    -   DeviceSerial: A string for a serial identifier of the device. It        may be a hash of one or more characteristics of the device such        as installed functionality    -   StartTime: Time to begin to watch the session    -   StopTime: Time to complete watching the session    -   Status: Events (“Play”, “Pause” & “Stop”) received from the        player    -   Book: a number of seconds from a beginning of playback that        viewing stopped. May be 0 for live content    -   ContentName: a string of the content's name    -   ContentProvider: a string identifying the provider of the        content    -   NetworkType: Cellular or WiFi    -   ContentLength: a number of seconds for the complete duration of        the content item    -   InHome: “TRUE” if watching TV at home over WiFi; “FALSE”        otherwise    -   ContentType: Live, S-VOD, Movie, Trailer, PPV    -   ContentSource: Mobility, IPTV, DTH, Guest    -   DeliveryType: a string identifying whether the content was        streaming or downloaded    -   AssetID: a string identifying an asset being viewed    -   AppVersion: a string identifying the version of the consumption        application

When the consumption monitoring functionality indicates that aparticular subscriber is viewing a stream, the information may be usedto enforce concurrency rules, which may indicate for example that onlyone copy of the content may be viewed by the subscriber at a time. Ifthe consumption monitoring functionality 212 of the media monitoringserver 210 does not receive a monitoring record within a predeterminedperiod of time, for example 11 minutes, the consumption monitoringfunctionality 212 may assume that an error has occurred on the contentconsumption device and release the content stream for consumption byanother device falling under the same subscriber account as well aspossibly record an error in the monitoring records.

The monitoring records may be sent in various forms such as, for examplea JavaScript Object Notation (JSON) message. For example, the JSONmessage may provide:

{  ″SessionID″: ″B99DFA4D-67A2-48B0-9743-817A2460EB70″,  ″Sequence″: 0, ″SubID″: ″0000000017567858821617455151291839889941-023X_wap2.bellmobility.ca″,  “TVA”:” “8455700600031569”,  ″DeviceID″:″56D410F6DDEE2EF35A4B484B75436536″,  ″DeviceModel″: ″iPhone1_1″, ″OSVersion″: ″5.1.1″,  ″DeviceSerial″:″56D410F6DDEE2EF35A4B484B75436536″,  ″StartTime″: 1336716946, ″StopTime″: 1336768892,  ″Status″:″Play″,  ″Book″:1245,  ″ContentName″:″Market Sense″,  ″ContentProvider″: ″Disney″,  ″NetworkType″: ″wifi″, ″InHome″: TRUE,  ″ContentType″: ″Live″,  ″ContentSource″: ″Mobility″, ″DeliveryType″: ″Streaming″,  ″AssetId″: ″1245637″,  ″AppVersion″:″4.2.3″ },

The monitoring records may be generated for various playback statuses ofvideo content, including for example “Play”, “Pause” and “Stop”. Anevent that results in status “Play” may be, for example, a monitoringtimer reaching the end of the X-minutes interval, or the user initiatingplayback of a media asset on his/her device 206. Upon receiving a “Play”event, the consumption monitoring functionality or application 216 maysend an immediate monitoring record, re-set the monitoring timer andcontinue playing the media asset. No bookmark information is saved bythe media monitoring server 210 on receiving a status “Play” monitoringrecord, unless the media monitoring server 210 doesn't receive anothermonitoring record for X minutes. Similarly, with regard to concurrencycontrol and enforcement, the stream or media asset is not released onstatus “Play” unless the media monitoring server 210 doesn't receiveanother monitoring record for X minutes.

Events that result in status “Pause” monitoring records may include auser clicking on the Pause (II) button, or an outside-of-applicationevent interrupting a currently playing video stream. If the content isbeing consumed on a device such as a smart phone theoutside-of-application event may be for example, a call, calendar alert,briefly lost network connection or other events. Upon receiving a“Pause” event, the consumption monitoring functionality or application216 may save the monitoring record with status “Pause” to a monitoringcache, re-set the monitoring timer, and not send an monitoring recorduntil the monitoring timer reaches the end of the pre-defined X-minutesinterval.

Alternatively, the consumption monitoring functionality may send orissue the monitoring record when the playback event occurs instead ofcaching the monitoring record for subsequent sending. Sending monitoringrecords when playback events occur may provide an improved userexperience when a user views content across multiple devices andswitches device mid-way through the content.

“Pause” behavior across different content (or media assets) andplatforms may be different for different operating systems and based onthe content being viewed. For example, when watching video on demand(VOD) in the foreground on device running Android or iOS, theapplication may allow the user to pause the stream indefinitely exceptin case of an application crash, network loss or power off situationetc. On these devices, the media monitoring server may receive a “Pause”monitoring record every X minutes, where X may be for example 5 minutes.With regard to concurrency control, the stream may not be released whenthese Pause monitoring records are received. The user can subsequentlyresume playback from the same time instance, and no playback request isrequired. For an application crash, network loss or power off situationor any other case where a Pause monitoring record is not received by themedia monitoring server, the media monitoring server may set a bookmarkand release the stream after, for example, 10 min of receiving the lastmonitoring record. On restart, playback will start from the bookmarkreceived in the last monitoring record. When watching VOD in theforeground on a BlackBerry OS 10 (BB10) device, pause controls areavailable to the user, and the full overlay control may be maintained.The application provides the same behaviour as described above forAndroid/IOS in Foreground VOD.

When watching live content in the foreground on an Android/IOS device,functionality is the same as for Android/IOS in Foreground VOD. For BB10devices, functionality is similar to BB10 in Foreground VOD; however,there is no overlay control. Pause can be triggered by an inactivitytimer. Clicking/touching the screen after inactivity timer triggers, maytrigger current video to be reloaded even after stopping.

When watching VOD or live content on an Android/IOS device, the mediamonitoring server may receive a “Stop” monitoring record when the streamis stopped at the consumption device and the stream will be released bythe media server. When watching VOD or live content on a BB10 device themedia monitoring server may receive a Pause monitoring record uponoccurrence of a pause event. The stream may not be released; and theuser can resume playback in the foreground within 10 seconds. Attimer=10 sec, while the content consumption application is in thebackground (or Pause Live in foreground), the application may then sendmonitoring report with status=stop to the media monitoring server andthe stream is released. If while in the background, or Pause Live whilein the foreground for more than 10 seconds, when playback resumes, theapplication must request playback from the media monitoring server forplayback permission. The 10 seconds threshold may be configurable on theserver and could be modified. The monitoring reports may includeinformation on the type of device, such as iOS, android or BB10. Nobookmark needs to be saved on status “Pause”. The concurrency stream maynot released on status “Pause”.

Events that result in status “Stop” monitoring records being generatedand transmitted to the monitoring server may include for example:

-   -   the content consumption application exits;    -   the content consumption application is moved to the background;    -   device goes into lock screen mode (the application is        backgrounded in this case);    -   user switches content: if the user switches content at the same        time as X-minutes interval expires, i.e. there's a conflict        between “Stop” and “Play”, the “Stop” status monitoring record        should be sent. Content switch is when switching VOD or a live        channel, and does NOT include show or programming changes when        watching the same channel.    -   network switch;    -   network switch between Wi-Fi access and cellular access;    -   network switch from in-home Wi-Fi to out-of-home Wi-Fi. If the        application caches the monitoring record for the network switch,        the monitoring record should be sent immediately when the new        network is acquired i.e. before sending the Playback request for        the media asset.    -   the TV account value is changed (this includes change to/from        ‘no TV account’ situations).

Upon receiving the Stop event, the content consumption clientapplication should (for non-network switch) send an immediate monitoringrecord, re-set the monitoring timer and cease playing the asset.Subsequent Playback permission is required after sending the monitoringrecord with status “Stop” in order to resume playback. The mediamonitoring server may provide the playback permission based onconcurrency rules associated with the requested content.

During a network switch and content switch, the playback functionalitymay listen for the media monitoring server's response after sending theimmediate Stop event. The application should: send the immediatemonitoring record, and re-set the heartbeat or monitoring timer. Onceany media monitoring server response is received, the playbackfunctionality will send a playback request immediately. If no responsefrom the media monitoring server is received for 1 second, the playbackfunctionality may also send playback request.

The bookmark is saved on status “Stop”. The concurrency stream may alsobe released by the media server when a “Stop” monitoring record isreceived.

As described above, the media monitoring server 210 may receivemonitoring records indicating various playback events. The mediamonitoring server may include functionality for authorizing 220 playbackof requested content. The authorization functionality 220 may utilizesubscriber information stored in a subscriber data store 222 in order todetermine if the subscriber is authorized to access the content,possibly based on the requested content, the subscriptions of thesubscriber and the network connection type and/or location the user isconnecting from as well as concurrency rules which may specify a numberof content streams that may be viewed simultaneously.

The media monitoring server 210 may also include metering functionality224. The metering functionality may process the received monitoringrecords and process them in order to meter the consumption of thecontent. The metering may be used to notify users of their consumption,for example to warn of any approaching thresholds, as well as forbilling purposes. The billing and notifications may be performed by aseparate billing and/or accounting system 226. The billing may be basedon billing business rules, which can be stored in a data store 228.

The media monitoring server 210 may further include bookmarkingfunctionality 230. The bookmarking functionality 230 may receivemonitoring records in order to determine where exactly playback within aparticular media asset or content stream was stopped. The bookmarks maybe saved in a bookmark repository 232 and used to subsequently restartplayback of a given media asset at the last or stopped location.

FIG. 3 depicts a process flow 300 for monitoring consumption of contenton content consumption devices. The process flow 300 depicts the processbetween a content consuming device such as a smart phone 204 and themedia monitoring server 210. The content consuming device 204 receives aplayback event 302 and generates a monitoring record 304, referred tofurther below as a notification for brevity. The notification is sent306 from the content consuming device 204. The notification may includeinformation about the playback event such as start and/or stop times,device identifying information and/or subscriber identifyinginformation, and content identifying information. The notification isreceived at the media monitoring server 206 and writes the notificationto a flat file 308 or other data structure. When the notification issent, the content consuming device resets a monitoring or notificationtimer 310. When the timer expires 312, without another playback eventoccurring, another notification is generated 314, which may be thesubstantially the same as the previous notification, and sent 316 to themedia monitoring server 210. The notification is received and written tothe file 318. When the notification is sent, the content consumingdevice 204 again resets the notification timer 320. The media monitoringserver 210 may write the received notifications to a file, which may beperiodically stored. The media monitoring server 210 may for examplewrite the file to storage every 15 minutes. A write timer may be used,which when it expires 322, the file is stored 324. The stored files maybe further processed for example billing and/or reporting purposes.

FIG. 4 depicts a further message flow 402 for monitoring consumption ofcontent on devices. As depicted, a Play event 402 occurs at minute mark1 and the content consuming device sends a notification to the mediamonitoring server 210 that includes an indication of the play start time404 of the media asset. Although only the start and stop times aredepicted as being included in the notifications, the notification mayalso include additional information as described above. Once the Playnotification is sent, the consumption device 204 begins the notificationtimer, which as depicted, expires every 5 minutes although it will beappreciated that other lengths of time are possible. In this example,when the notification timer expires at the 6 minutes mark, theconsumption device sends the Play notification 406 to the server 210again indicating when the Play event was initiated, namely at the 1minute mark. Again the notification timer is reset and once it expires,another Play notification 408 is sent to the media monitoring server210.

At the 14 minutes mark, a Pause event 410 occurs. The consumption device204 caches the Pause event until the notification timer expires. Whenthe notification timer expires at the 16 minutes mark, a notification412 is generated and sent for the previous Pause event. The Pause eventmay specify a stop time, namely the time the Pause event occurred alongwith the initial start time of the content stream. Once the Pausenotification is sent, the notification timer may be reset and anothernotification sent upon expiry at the 21 minutes mark. The notification414 sent upon expiry of the timer is substantially the same as theprevious notification.

At the 23 minutes mark, a Resume event 416 occurs and a notification 418is likewise sent to the media monitoring server 210 that specifies aPlay event and may include the play time, namely 23 minutes. Aftersending the notification, the notification timer is reset and asubsequent notification 420 sent again when the timer expires at the 28minutes mark. A Stop event 422 occurs at 30 minutes and a Stopnotification 424 is sent to the media monitoring server 210.

As described above, the notifications, or the monitoring records, may beprocessed in order to provide various functionality. The notificationsmay include bookmarking information that can allow playback to beresumed after stopping or pausing playback.

FIG. 5 depicts a process flow 500 for providing viewing bookmarks duringcontent playback. The process or messaging flow 500 depicts the processbetween the content consuming device 204, the media monitoring server210, the bookmarking functionality or gateway 230 and the bookmarkrepository 232. A playback event occurs 502 and notification isgenerated 504 and sent 506 to the media monitoring server 210. The mediamonitoring server 210 receives the notification and determines abookmark event 508 associated with the notification or event. Forexample, a Play event may be associated with retrieving a bookmark inorder to resume the playback of a media asset from where it wasinterrupted. Alternatively, a Stop event may be associated with storinga bookmark in order to subsequently resume playback at a later time fromwhere the content playback was stopped. The bookmark information is sent510 to the bookmark gateway 230, which receives the bookmark informationand determines an appropriate bookmark repository 512 to store thebookmark in. For example, different content may be provided from or bydifferent content distribution services, which each may have arespective bookmark repository. The bookmark information is requested(for Play events) or set (for Stop events) 514 and the repositoryretrieves or sets the bookmark 516 and returns the bookmark informationor an acknowledgement 518 that the bookmark has been set.

Each content delivery platform or distribution system may storecorresponding media assets using different identifiers. The bookmarkgateway 230 may map different asset identifiers to each other across thevarious different delivery systems. The bookmark gateway 230 may alsoset corresponding bookmarks in each bookmark repository such that if abookmark request is received at a given repository, for example by alegacy device that does not support the media consumption monitoringfunctionality, the bookmark information may still be retrieved.Advantageously, the bookmarking functionality allows a users totransition smoothly from one device to another with no need to restartvideos from the beginning.

FIG. 6 depicts a process 600 for metering content consumption. Thenotifications or monitoring records may include precise information onthe start and stop times of content being consumed, as well as the typeof connection the content is being consumed over, as well as the contenttype. The notifications or monitoring records can be processed in ordermeter the content consumption to facilitate billing, provide alerts ornotifications when consumption approaches a predefined threshold as wellas for detailed reporting purposes. As depicted in FIG. 6, the process600 includes processing the monitoring records or consumption files 602by metering functionality 604 and metering rules 606. As depicted, themetering functionality 604 may place content consumption 608 into one ofa plurality of buckets 610. After processing, each of the buckets mayinclude the total amount of time corresponding content has beenconsumed. The buckets may then be processed by billing functionality612, which processes the consumption in the buckets according to billingor business rules 614. For example, the billing rules 614 may providedifferent weightings for each bucket, or different billing requirementsas desired.

For example, the buckets may include buckets for TV and/or VOD contentconsumed over a cellular network, TV and/or VOD content consumed over aWiFi network while in a home environment as well as TV and/or VODcontent consumed over a non-in-home or public WiFi network. It will beappreciated that cellular and WiFi usage metering is flexible. Thebuckets of each category or field are configurable. Also, the number ofbuckets in each category or field can be added or removed. Once a usagefalls into a particular bucket in the charging scheme, usage meteringmay have configurable settings to define if this usage is chargeable,non-chargeable, or impossible (i.e. an invalid scenario). Impossiblescenarios may be recorded in error logs for error detection and earlyresolution.

FIG. 7 depicts a process for tracking and controlling the concurrentplayback or access to content. In addition to the functionalitydescribed above, the monitoring records may also be used to provide aform of concurrency control. That is, the media monitoring server may beadapted to provide the ability to query for permission to play back amedia asset. If the subscriber is authorized to view content or a mediaasset, the permission may be sent back to the consumption device. Itwill be appreciated that the media monitoring server may considervarious aspects in determining if the consumption of the media asset isauthorized. For example, in respect of movies, the following may beconsidered:

-   -   Entitlement    -   Roaming    -   Device    -   OS    -   Concurrency

For subscription VOD (SVOD) and Linear (Live) content, the following maybe considered:

-   -   Concurrency

In controlling content playback based on concurrency rules, it isnecessary to be able to determine the number of content streams beingplayed back. If it is possible to track the number of streams beingplayed, the number of streams may be controlled. The media monitoringserver may then authorize, or not authorize, content playback dependingupon the content, or possibly other content, that is currently beingplayed back. As an example, the monitoring records received by the mediamonitoring server may be processed in order to maintain a lock state fora particular content stream. The lock state may indicate the number ofcontent streams that are currently being played back by a givensubscriber account. The media monitoring server may control subsequentcontent playback to allow, for example, only a single stream to beplayed at any given time, or a plurality of streams to be playedconcurrently.

As depicted in FIG. 7, the concurrency control process 700 includesreceiving a playback event, such as Play, 702 and generating anotification 704. The notification is sent 706 to the media monitoringserver 210, which receives the notification and determines the contentstream's lock state 708. In order to determine if the Play request isauthorized, the media monitoring server 210 determines an allowed lockstate for the content 710. If the current lock state of the requestedstream does not exceed the allowable lock state the media or contentrequest may be allowed 712 and the media may be streamed 714. The lockstate of the media content stream may be updated to reflect thestreaming of the content.

FIG. 8 depicts a further process 800 for controlling the concurrentaccess to content or media streams. The process 800 may unlock a stream.For example, a playback event, such as Stop, may occur at the consumingdevice 204 and a notification is then generated 804 and sent 806 to themedia monitoring server 210. The media monitoring server 210 receivesand processes the notification and determines the current stream lockstate; the stream lock state 910 may then be updated to reflect that oneof the streams being played has been stopped.

The above has described various functionality provided by varioussystems. The functionality may be provided as a combination of hardware,firmware and software comprising instructions stored in a memory thatare executed by a processor. The executed instructions configure devicesto provide at least some of the functionality described. Althoughspecific embodiments are described herein, it will be appreciated thatmodifications may be made to the embodiments without departing from thescope of the current teachings. Accordingly, the scope of the appendedclaims should not be limited by the specific embodiments set forth, butshould be given the broadest interpretation consistent with theteachings of the description as a whole.

What is claimed:
 1. A method for monitoring consumption of media contentcomprising: receiving a media content playback event at a contentconsumption device; generating a content consumption notificationmessage including subscriber information, content consumption deviceinformation, media content playback event identifier, and media contentinformation; and transmitting the generated consumption notificationmessage to a content consumption monitoring system.
 2. The method ofclaim 1, further comprising: resetting a monitoring timer aftertransmitting the generated consumption notification message when themedia content playback event indicated playing of the media content;determining if the monitoring timer has expired prior to receiving afurther media content playback event; generating a further contentconsumption notification message indicating continued playback of themedia content; and transmitting the further content consumptionnotification message to the content consumption monitoring system. 3.The method of claim 1, further comprising: stopping a monitoring timerafter transmitting the generated consumption notification message whenthe media content playback event indicated stopping of playback of themedia content.
 4. The method of claim 1, wherein the media contentplayback event comprises one or more of: initiating playback of themedia content; pausing playback of the media content; stopping playbackof the media content; and occurrence of an error in the playback of themedia content.
 5. The method of claim 1, further comprising: receivingthe consumption notification message at the content consumptionmonitoring system; and writing at the content consumption monitoringsystem the consumption notification message to a file.
 6. The method ofclaim 5, further comprising: resetting a monitoring timeout timer at thecontent consumption monitoring system associated with the contentconsumption device after receiving the consumption notification message;and determining a playback error has occurred upon expiry of themonitoring timeout timer.
 7. The method of claim 5, further comprising:storing the file; and writing subsequently received consumptionnotification messages to a different file.
 8. The method of claim 5,further comprising: providing an indication of the media contentplayback event received in the consumption notification message;updating a lock state associated with the media content based on theindication of the media content playback event; and sending playbackcontrol information to a media content playback component.
 9. The methodof claim 8, wherein the lock state associated with the media contentprovides an indication of a number of streams of the media contentcurrently associated with a subscriber viewing the media content. 10.The method of claim 9, wherein updating the lock state comprisesdetermining if the subscriber is authorized to view the media contentbased on the lock state when the content playback event indicatesplaying the media content.
 11. The method of claim 5, furthercomprising: determining that the media content playback event isassociated with pausing or stopping playback of the media content;determining a bookmark repository for storing bookmark information basedon a subscriber type; storing bookmark information associated with themedia content in the determined bookmark repository.
 12. The method ofclaim 5, further comprising: determining that the media content playbackevent is associated with initiating or continuing playback of the mediacontent; determining a bookmark repository for retrieving bookmarkinformation from based on a subscriber type; and retrieving bookmarkinformation associated with the media content in the determined bookmarkrepository.
 13. The method of claim 7, further comprising: retrievingthe stored file; processing the stored file to place media contentconsumption into a plurality of buckets based on one or more of: theaccess technology used to view the media content; the subscriptioninformation; and the media content consumed; and determining a chargebased on the media content consumption usage in each of the plurality ofbuckets.
 14. The method of claim 13, wherein the plurality of bucketsinclude one or more buckets for: media content accessed over a cellularnetwork; media content accessed over a home network; and media contentaccessed over an out-of-home network.
 15. The method of claim 13,wherein each bucket is associated with a weighting for use indetermining the charge.
 16. A device for consuming media contentcomprising: a processing unit for executing instructions; and a memoryunit for storing instructions, which when executed by the processingunit configure the system to provide: media consumption functionalityfor playback of media content; and media consumption monitoringfunctionality for: receiving a media content playback event at a contentconsumption device; generating a content consumption notificationmessage including subscriber information, content consumption deviceinformation, media content playback event identifier, and media contentinformation; and transmitting the generated consumption notificationmessage to a content consumption monitoring system.
 17. The device ofclaim 16, wherein the media consumption monitoring functionality isfurther for: resetting a monitoring timer after transmitting thegenerated consumption notification message when the media contentplayback event indicated playing of the media content; determining ifthe monitoring timer has expired prior to receiving a further mediacontent playback event; generating a further content consumptionnotification message indicating continued playback of the media content;and transmitting the further content consumption notification message tothe content consumption monitoring system.
 18. The device of claim 16,wherein the media consumption monitoring functionality is further for:stopping a monitoring timer after transmitting the generated consumptionnotification message when the media content playback event indicatedstopping of playback of the media content.
 19. The device of claim 16,wherein the media content playback event comprises one or more of:initiating playback of the media content; pausing playback of the mediacontent; stopping playback of the media content; and occurrence of anerror in the playback of the media content.
 20. A device for monitoringmedia content consumption comprising: a processing unit for executinginstructions; and a memory unit for storing instructions, which whenexecuted by the processing unit configure the system to provide:notification reception functionality for receiving consumptionnotification messages from a plurality of consumption device, each ofthe received consumption notification messages including subscriberinformation, content consumption device information, media contentplayback event identifier, and media content information; and writingthe received consumption notification messages to a file.
 21. The deviceof claim 20, wherein the notification reception functionality is furtherfor: resetting a monitoring timeout timer associated with a contentconsumption device after receiving a consumption notification messagefrom the content consumption device; and determining a playback errorhas occurred upon expiry of the monitoring timeout timer.
 22. The deviceof claim 20, wherein the notification reception functionality is furtherfor: storing the file; and writing subsequently received consumptionnotification messages to a different file.
 23. The device of claim 20,wherein the notification reception functionality is further for:providing an indication of the media content playback event received inthe consumption notification message; updating a lock state associatedwith the media content based on the indication of the media contentplayback event; and sending playback control information to a mediacontent playback component.
 24. The device of claim 23, wherein the lockstate associated with the media content provides an indication of anumber of streams of the media content currently associated with asubscriber viewing the media content.
 25. The device of claim 24,wherein updating the lock state comprises determining if the subscriberis authorized to view the media content based on the lock state when thecontent playback event indicates playing the media content.
 26. Thedevice of claim 20, wherein the notification reception functionality isfurther for: determining that the media content playback event isassociated with pausing or stopping playback of the media content;determining a bookmark repository for storing bookmark information basedon a subscriber type; storing bookmark information associated with themedia content in the determined bookmark repository.
 27. The device ofclaim 20, wherein the notification reception functionality is furtherfor: determining that the media content playback event is associatedwith initiating or continuing playback of the media content; determininga bookmark repository for retrieving bookmark information from based ona subscriber type; and retrieving bookmark information associated withthe media content in the determined bookmark repository.
 28. The deviceof claim 20, wherein the notification reception functionality is furtherfor: retrieving the stored file; processing the stored file to placemedia content consumption into a plurality of buckets based on one ormore of: the access technology used to view the media content; thesubscription information; and the media content consumed; anddetermining a charge based on the media content consumption usage ineach of the plurality of buckets.
 29. The device of claim 28, whereinthe plurality of buckets include one or more buckets for: media contentaccessed over a cellular network; media content accessed over a homenetwork; and media content accessed over an out-of-home network.
 30. Thedevice of claim 28, wherein each bucket is associated with a weightingfor use in determining the charge.